package demo.controller.adm;

import demo.dao.ClzDao;
import demo.dao.FileDao;
import demo.dao.UserDao;
import demo.entity.Clz;
import demo.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpSession;
import java.util.List;

@Controller
@RequestMapping("/clzadm")
public class ClzAdmController {
    @Autowired(required = false)
    UserDao userDao;
    @Autowired(required = false)
    FileDao fileDao;
    @Autowired(required = false)
    ClzDao clzDao;
    @GetMapping("/dels/{clzno}")
    public String dels(@PathVariable("clzno") String clzno, Model model){//更改班级拿到班级编号
        int del = clzDao.del(clzno);//进行更改
        model.addAttribute("actions", "删除成功");//返回显示成功
        return "forward:/clzadm/show2/1";//跳转到分页页面
    }
    @RequestMapping("/show2/{curline}")
    public String show2(@PathVariable("curline") Integer curline,Model model,HttpSession session){//分页页面拿到分页的初始页数
        if (curline!=null){//判断初始页数不是空值
            Clz clz=new Clz();//拿到空的班级
            model.addAttribute("clz",clz);//将班级传到前端页面
            model.addAttribute("action","添加");//将是添加或者修改提示传到前端页面
            model.addAttribute("go2","add2s");//将跳转添加页面传到前端页面
        }else curline=1;//判断空值就给初始值
        int cou = clzDao.findCou();//获取班级总的行数
        int lines=cou/6;//获取显示页数
        if (curline>lines){//判断初始页数是否大于显示页数
            curline=lines;//大于则赋值为最后一页
        }
        model.addAttribute("curline",curline);//将初始页数传到前端
        model.addAttribute("lines",lines);//将显示页数传到前端
        List<Clz> all=clzDao.findpage((curline - 1) * 6, 6);//获取需要显示的班级信息
        model.addAttribute("list",all);//将需要显示的班级信息传到前端
        return "/adm/clz";//跳转到html页面
    }
    @RequestMapping("curline")
    public String curline(Model model,Integer curline){//上一页跳转获取页面显示的页数
        if (curline==1){
            return "forward:/clzadm/show2/1";
        }
        curline=curline-1;//将显示页数减一并赋值
        model.addAttribute("curline",curline);//将新的显示页数传到前端
        return "forward:/clzadm/show2/"+curline;//从新访问分页显示页面
    }
    @RequestMapping("lines")
    public String lines(Model model,Integer curline){//下一页获取页面显示的页数
        curline=curline+1;//将显示页数加一并赋值
        model.addAttribute("curline",curline);//将新的显示页数传到前端
        return "forward:/clzadm/show2/"+curline;//重新访问分页显示页面
    }
    @GetMapping("/adds")
    public String adds(Model model){//去添加
        Clz clz=new Clz();//获取空的班级类
        model.addAttribute("action","添加");//将是添加或者修改提示传到前端页面
        model.addAttribute("go2","add2s");//将跳转添加页面传到前端页面
        model.addAttribute("clz",clz);//将班级传到前端页面
        return "forward:/clzadm/show2";//重新访问分页显示页面
    }
    @GetMapping("/ups/{clzno}")
    public String ups(@PathVariable("clzno") String clzno,Model model){//去修改获取需要修改的班级编号
        Clz clz=clzDao.findByClzno(clzno);//查找班级信息
        model.addAttribute("action","更新");//将是添加或者修改提示传到前端页面
        model.addAttribute("go2","up2s");//将跳转修改页面传到前端页面
        model.addAttribute("clz",clz);//将班级传到前端页面
        return "forward:/clzadm/show2";//重新访问分页显示页面
    }
    @PostMapping("/add2s")
    public String add2s(Clz clz,Model model){//添加信息获取新的班级信息
        int add=clzDao.add(clz);//添加
        model.addAttribute("action","添加");//将是添加或者修改提示传到前端页面
        model.addAttribute("actions", "添加成功");//显示添加成功
        return "forward:/clzadm/show2/1";//重新访问分页显示页面
    }
    @PostMapping("/up2s")
    public String up2s(Clz clz,Model model){//获取修改的班级信息
        int add=clzDao.up(clz);//修改
        model.addAttribute("action","更新");//将是添加或者修改提示传到前端页面
        model.addAttribute("actions", "更新成功");//显示更新成功
        return "forward:/clzadm/show2/1";//重新访问分页显示页面
    }
    @RequestMapping("/show2")
    public String show(Model model){
        int cou = clzDao.findCou();
        int lines=cou/6;
        model.addAttribute("curline",1);
        model.addAttribute("lines",lines);
        List<Clz> all=clzDao.findpage((1 - 1) * 6, 6);
        model.addAttribute("list",all);
        return "/adm/clz";
    }
}
